#ifndef __DRIVER_I2C_H__
#define __DRIVER_I2C_H__

#include "main.h"

#define SCL_Pin           GPIO_PIN_6
#define SCL_GPIO_Port     GPIOA
#define SDA_Pin           GPIO_PIN_7
#define SDA_GPIO_Port     GPIOA

#define SCL_H              HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_SET)
#define SCL_L              HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_RESET)

#define SDA_H              HAL_GPIO_WritePin(SDA_GPIO_Port, SDA_Pin, GPIO_PIN_SET)
#define SDA_L              HAL_GPIO_WritePin(SDA_GPIO_Port, SDA_Pin, GPIO_PIN_RESET)
#define SDA_RD             HAL_GPIO_ReadPin(SDA_GPIO_Port, SDA_Pin)

void I2C_Delay(uint32_t tick);
void I2C_GPIO_ReInit(void);
void I2C_Start(void);
void I2C_Stop(void);
uint8_t I2C_GetAck_From_Slave(void);
void I2C_Master_Ack(uint8_t ack);
void I2C_WriteByte(uint8_t data);
uint8_t I2C_ReadByte(void);

#endif
